Эффективный поиск в данных
В данной статье рассмотрены некоторые приемы, позволяющие осуществлять эффективный поиск в данных с помощью механизма полнотекстового поиска "1С:Предприятия".
Большинство пользователей интернет поиска используют в среднем 1,5 слова в поисковом запросе (т. е. 1 или 2 слова). Одно слово - это слишком мало. 2 слова – это минимум, позволяющий найти осмысленные результаты.
Например, запросы из двух слов могут быть:
- контрагент-товар (пример: - Белявский диван-):
- товар-дата (пример: -диван "03.02.2004"-):
- реквизит-значение (пример: -ответственный Абдулов- или - телефон 112-90-08- ):
Основной принцип поиска – количество найденных документов должно быть небольшим, но не нулевым! Добиться этого можно уточнением или расширением запроса.
Если нашли слишком много – уточняем запрос:
-
Добавляем слова.
-
Используем операторы.
-
Фильтрация по метаданным.
Пример:
- Ищем -Абдулов- - нашли несколько десятков документов.
- Уточняем запрос – добавляем слово "ответственный", ищем -ответственный Абдулов-, количество найденных документов сократилось.
- Чтобы убрать документы, где слова "ответственный" и "Абдулов" находятся в разных реквизитах, ищем -ответственный РЯДОМ Абдулов-, нашли еще меньше документов.
- Ограничиваем область поиска документом Приходный кассовый ордер – осталось 4 найденных документа.
Если нашли слишком мало (не нашли ничего или нашли несколько документов, среди которых нет нужного нам), расширяем запрос:
-
Убираем слова.
-
Используем нечеткий поиск.
-
Поиск по синонимам.
Пример:
- Ищем - -произведения искуства-, не нашли ничего.
- Ищем –искуства-, опять ничего не найдено.
-
- Ищем -#искуства- - нашли! Оказывается, нужно было искать слово -искусства- (правильное написание слова)
Ну и в конце несколько полезных советов:
- При поиске по точной дате ее лучше брать в кавычки - "22.02.2004" или 02.2007 – будут найдены документы за февраль 2007 или 2 числа любого месяца в 2007 году.
- При поиске фамилий нужно помнить, что склонения фамилий не поддерживаются и нужно использовать звездочку - Абнагимов*.